package events

import (
	"github.com/jinzhu/gorm"
	"meman/sys/basic"
)

const (
	TABLE_MSG_CLASSES = "message_classes"
)


/**
消息
 */
type Message struct {
	ClassId int `gorm:"primary_key;AUTO_INCREMENT;column:class_id"`
	ClassKey string `gorm:"column:class_key"`
	ClassName string `gorm:"column:class_name"`
	Comment string  `gorm:"column:comment"`
	CreateTime int64 `gorm:"column:create_time"`
}

/**
获取消息列表
@param conds map[string]interface{} where语句参数
@param page int  当前页码
@param pageSize int  每页有几个数据
@return []Message,count  返回消息数组,和一共有多少条数据
 */
func (m *Message) GetMsgList(db *gorm.DB,conds map[string]interface{}, page, perPageNums int) ([]Message, error){
	start := GetPageStart(page, perPageNums)
	var messages []Message
	err := db.Table(TABLE_MSG_CLASSES).Where(conds).Limit(perPageNums).Offset(start).Find(&messages).Error
	return messages, err
}


/**
插入一条数据
 */
func(m *Message) Insert() error {
	db := basic.Write()
	err := db.Table(TABLE_MSG_CLASSES).Save(&m).Error
	return err
}

/**
根据id查找数据
 */
func(m *Message) FindById(id int) (Message, error) {
	db := basic.Read()
	var message Message
	err := db.Table(TABLE_MSG_CLASSES).Where("class_id = ?", id).First(&message).Error
	return message, err
}

/**
更新
 */
func(m *Message) Update(id int,conds map[string]interface{}) error {
	db := basic.Write()
	err := db.Table(TABLE_MSG_CLASSES).Where("class_id = ?", id).Updates(conds).Error
	return err
}

/**
删除, 根据id 删除数据
 */
func(m *Message) DeleteById(id int) error {
	db := basic.Write()
	err := db.Table(TABLE_MSG_CLASSES).Where("class_id = ?", id).Delete(&m).Error
	return err
}